package javaCode.chapter12.string_;

/**
 * @author 徐州城
 * @version 1.0
 */
public class StringExercise03 {
    public static void main(String[] args) {
        String a = "xzc"; //a指向常量池的 hsp
        String b = new String("xzc"); //b 指向堆种对象 value，而value指向常量池的hsp
        System.out.println(a.equals(b)); //T String重写了equals方法
        System.out.println(a == b); //F

        //知识点：
        //当调用 intern()时，如果池中已经包含一个等于此 String 对象的字符串(用equals.(Object)方法确定)，则返回池中的字符串。
        //否则，将此 String 对象添加到池中，并返回 String对象的引用
        //解读
        //1、b.intern() 最终返回的时常量池的地址
        System.out.println(a == b.intern()); //T
        System.out.println(b == b.intern()); //F
    }
}
